﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Modelo.Modulos.ClasesModelado;
using Logica.Modulos.ClasesLogica;
using System.Collections;


namespace ProyectoFinal
{
    public partial class frmInfoUsuario : Form
    {
        private string accion;
        private int idUsuario;
        int comboPuestoId;
        int comboPerfilId;
        public string Accion
        {
            get { return accion; }
            set { accion = value; }

        }
        public int IdUsuario
        {
            get { return idUsuario; }
            set { idUsuario = value; }

        }

        public class ComboBoxItem
        {
           
            public string Texto {get;set;}
            public object value { get; set; }

            public override string ToString()
            {
                     return Texto;
            }
        }

        public frmInfoUsuario()
        {
            InitializeComponent();
        }

        string imagen = "";

        private void frmInfoUsuario_Load(object sender, EventArgs e)
        {
            if (accion == "Mostrar")
            {
                txtNombre.ReadOnly = true;
                txtPrimerApellido.ReadOnly = true;
                txtSegundoApellido.ReadOnly = true;
                txtTelefono.ReadOnly = true;
                txtLogIn.ReadOnly = true;
                txtIdentificacion.ReadOnly = true;
                txtCostoHora.ReadOnly = true;
                txtContraseña.ReadOnly = true;
                dtpFechNac.Enabled = false;
                cmbPerfil.Enabled = false;
                cmbPuesto.Enabled = false;
                btnGuardar.Visible = false;
                pictureBox1.Enabled = false;

                CargarInfo();

            }
            else
            {
                if (accion == "Agregar")
                {
                    CargarCombos();
                }
                else
                { 
                    CargarInfo();
                }
                
            }

            

        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            Close();
        }


        public void CargarInfo()
        {
            UsuariosLog Logica = new UsuariosLog();
            UsuarioMod objMod = new UsuarioMod();
            objMod.IdUsuario = idUsuario;
            List<UsuarioMod> listaUsuarios = Logica.ConsultarClienteId(objMod);

            for (int i = 0; i < listaUsuarios.Count; i++)
            {

                txtNombre.Text = listaUsuarios[i].Nombre;
                txtContraseña.Text = listaUsuarios[i].Contrasena;
                txtCostoHora.Text = listaUsuarios[i].CostoPorHora.ToString();
                txtIdentificacion.Text = listaUsuarios[i].Identificacion.ToString();
                txtLogIn.Text = listaUsuarios[i].LoginUsuario;
                txtPrimerApellido.Text = listaUsuarios[i].PrimerApellido;
                txtSegundoApellido.Text = listaUsuarios[i].SegundoApellido;
                txtTelefono.Text = listaUsuarios[i].Telefono.ToString();
                dtpFechNac.Value = listaUsuarios[i].FechaNacimiento;
                this.pictureBox1.ImageLocation = listaUsuarios[i].Foto;
                this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

                if (accion == "Editar")
                {
                    comboPerfilId = listaUsuarios[i].IdPerfil;
                    comboPuestoId = listaUsuarios[i].IdPuesto;
                    CargarCombos();
                }
                else
                {  ComboBoxItem itemPuesto = new ComboBoxItem();

                itemPuesto.Texto = listaUsuarios[i].Puesto;
                itemPuesto.value = listaUsuarios[i].IdPuesto;
                cmbPuesto.Items.Add(itemPuesto);
                cmbPuesto.SelectedIndex = 0;

                ComboBoxItem itemPerfil = new ComboBoxItem();

                itemPerfil.Texto = listaUsuarios[i].Perfil;
                itemPerfil.value = listaUsuarios[i].IdPerfil;
                cmbPerfil.Items.Add(itemPerfil);
                cmbPerfil.SelectedIndex = 0;
                }
               
               
            }
                        
        }

        public void CargarCombos()
        {
            UsuariosLog logica = new UsuariosLog();
            List<PuestosMod> listaPuestos = logica.ConsultarPuestos();

            
            for (int i = 0; i < listaPuestos.Count; i++)
            
            {
                ComboBoxItem item = new ComboBoxItem();

                item.Texto = listaPuestos[i].Nombre;
                item.value = listaPuestos[i].IdPuesto;
                cmbPuesto.Items.Add(item);
                if ((accion == "Editar")&&(listaPuestos[i].IdPuesto == comboPuestoId))
                {
                  
                        cmbPuesto.SelectedIndex = i;
                   

                }
                else
                {
                    cmbPuesto.SelectedIndex = 0;
                }
                 
            }

           
           
            List<PerfilesMod> listaPerfiles = logica.ConsultarPerfiles();


            for (int i = 0; i < listaPerfiles.Count; i++)
            {
                ComboBoxItem item = new ComboBoxItem();

                item.Texto = listaPerfiles[i].NombrePerfil;
                item.value = listaPerfiles[i].IdPerfil;
                cmbPerfil.Items.Add(item);

                if ((accion == "Editar") && (listaPerfiles[i].IdPerfil == comboPerfilId))
                {
                     cmbPerfil.SelectedIndex = i;
                   
                       
                 
                }
                else
                {
                    cmbPerfil.SelectedIndex = 0;
                }

            }
                 
                  
            
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {

            if (accion == "Agregar")
            {
                try
                {
                   // if (ValidacionesCampos() == true)
                    {
                        UsuarioMod objMod = new UsuarioMod();
                        objMod.Nombre = txtNombre.Text;
                        objMod.PrimerApellido = txtPrimerApellido.Text;
                        objMod.SegundoApellido = txtSegundoApellido.Text;
                        objMod.Telefono =Convert.ToInt32( txtTelefono.Text);
                        objMod.Contrasena = txtContraseña.Text;
                        objMod.CostoPorHora = Convert.ToDecimal(txtCostoHora.Text);
                        objMod.FechaNacimiento = dtpFechNac.Value;
                        objMod.IdPerfil = Convert.ToInt32((cmbPerfil.SelectedItem as ComboBoxItem).value) ;
                        objMod.IdPuesto = Convert.ToInt32((cmbPuesto.SelectedItem as ComboBoxItem).value);
                        objMod.LoginUsuario = txtLogIn.Text;
                        objMod.Identificacion = Convert.ToInt32(txtIdentificacion.Text);
                        objMod.Foto = imagen;


                        UsuariosLog Logica = new UsuariosLog();
                        Logica.InsertarUsuario(objMod);

                        Close();
                    }



                }
                catch (Exception exc)
                {

                    MessageBox.Show(exc.Message, "Error de capa 8", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            if (accion == "Editar")
            {
                try
                {
                    //if (ValidacionesCampos() == true)
                    {


                        UsuarioMod objMod = new UsuarioMod();
                        //
                        objMod.IdUsuario = idUsuario;
                        objMod.Nombre = txtNombre.Text;
                        objMod.PrimerApellido = txtPrimerApellido.Text;
                        objMod.SegundoApellido = txtSegundoApellido.Text;
                        objMod.Telefono = Convert.ToInt32(txtTelefono.Text);
                        objMod.Contrasena = txtContraseña.Text;
                        objMod.CostoPorHora = Convert.ToDecimal(txtCostoHora.Text);
                        objMod.FechaNacimiento = dtpFechNac.Value;
                        objMod.IdPerfil = Convert.ToInt32((cmbPerfil.SelectedItem as ComboBoxItem).value);
                        objMod.IdPuesto = Convert.ToInt32((cmbPuesto.SelectedItem as ComboBoxItem).value);
                        objMod.LoginUsuario = txtLogIn.Text;
                        objMod.Identificacion = Convert.ToInt32(txtIdentificacion.Text);
                        objMod.Foto = imagen;

                        UsuariosLog Logica = new UsuariosLog();
                        Logica.ActualizarUsuario(objMod);
                     
                        Close();
                      

                    }



                }
                catch (Exception exc)
                {

                    MessageBox.Show(exc.Message, "Error de capa 8", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

               
            
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {
             UsuarioMod objMod = new UsuarioMod();
           
            try
            {
                OpenFileDialog opendialog = new OpenFileDialog();
                opendialog.Filter = "Archivos de Imagen|*.jpg";
                opendialog.FileName = "";
                opendialog.Title = "Foto de usuario";
                opendialog.InitialDirectory = "C:\\";
                if (opendialog.ShowDialog()==DialogResult.OK)
                {
                    imagen = opendialog.FileName;
                    this.pictureBox1.ImageLocation = imagen;
                    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                }
                              
            }
            catch (Exception exc)
            {

                MessageBox.Show(exc.Message, "Por Favor Seleccione Imagen ", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        }
           

               
            
        }

     /* public Boolean ValidacionesCampos()
        {
            if (txtNombre.Text == "")
            { //Preguntar al profe com validar numeros o letras
                MessageBox.Show("El campo de nombre esta vacio ", "Validacion Campos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtNombre.Focus();
                return false;
            }
            if ( txtContraseña.Text == "")
            {
                MessageBox.Show("El campo de Contraseña esta vacio", "Validacion Campos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtContraseña.Focus();
                return false;
            }
            if (txtCostoHora.Text == "")
            {
                MessageBox.Show("El campo de Costo Por Hora esta vacio", "Validacion Campos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtContraseña.Focus();
                return false;
            }
            if (txtIdentificacion.Text == "")
            {
                MessageBox.Show("El campo de Identificacion esta vacio", "Validacion Campos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtIdentificacion.Focus();
                return false;
            }
            if (txtLogIn.Text == "")
            {
                MessageBox.Show("El campo de LogIn esta vacio", "Validacion Campos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtLogIn.Focus();
                return false;
            }
            if (txtPrimerApellido.Text == "")
            {
                MessageBox.Show("El campo del Primer Apellido esta vacio", "Validacion Campos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtPrimerApellido.Focus();
                return false;
            }

            if (txtSegundoApellido.Text == "")
            {
                MessageBox.Show("El campo del Segundo Apellido esta vacio", "Validacion Campos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtSegundoApellido.Focus();
                return false;
            }
            if (txtTelefono.Text == "")
            {
                MessageBox.Show("El campo del Teléfono esta vacio", "Validacion Campos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtTelefono.Focus();
                return false;
            }
           

            return true;*/
      

      

